# 字典的使用 字典是“键值对”的无序可变序列

# 字典的创建
a = {'name':'gaoqi','age':18,'job':'programmer'}
b = dict(name='gaoqi',age=18,job='programmer')
a = dict([("name","gaoqi"),("age",18)])
c = {}	#空的字典对象
d = dict()	#空的字典对象

print(b)

# 通过zip创建字典对象
k = ["name","age","job"]
v = ["zws",28,"teacher"]
d = dict(zip(k,v))
print(d)

# 通过 fromkeys 创建值为空的字典
a = dict.fromkeys(['name','age','job'])
print(a) # {'name': None, 'age': None, 'job': None}

# 字典元素的访问
a = {'name':'gaoqi','age':18,'job':'programmer'}
print(a['name'])
print(a.get("name","hanrentong"))
print(a.items()) # 列出所有的键值对
print(a.keys()) # 列出所有的键
print(a.values()) # 列出所有的值
print(len(a)) # 键值对的个数
print("name" in a) # 检测这个键是否在字典中

# 字典元素的增删改查
# 1.给字典新增键值对,如果键已存在则覆盖就得键值对,如果不存在则新增
a = {'name':'gaoqi','age':18,'job':'programmer'}
a['address']='西三旗 1 号院'
a['age']=16
print(a)

# 2.使用 update()将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复，则直接覆盖。
a = {'name':'gaoqi','age':18,'job':'programmer'}
b = {'name':'gaoxixi','money':1000,'sex':'男的'}
a.update(b)
print(a)

# 字典中元素的删除，可以使用 del()方法
# 或者 clear()删除所有键值对；pop()删除指定键值对，并返回对应的“值对象”；
a = {'name':'gaoqi','age':18,'job':'programmer'}
del(a['name'])
b = a.pop('age')

# popitem():随机删除和返回该键值对，删除的是kv对应的一对
a = {'name':'gaoqi','age':18,'job':'programmer'}
print(a.popitem())
print(a)

